package com.ruoyi.experiment.service;

import com.ruoyi.experiment.domain.*;
import com.ruoyi.experiment.model.*;

import java.util.List;

public interface IExperimentOutService {

    List<EProject> selectAllItem(Project project);

    List<Sample> selectSamples(Sample sample);

    boolean flume(ExperimentFlume flume);

    /**
     * 查询实验管理
     *
     * @param experimentId 实验管理主键
     * @return 实验管理
     */
    Experiment selectExperimentalManagementByExperimentId(Long experimentId);

    /**
     * 查询实验管理列表
     *
     * @param experimentalManagement 实验管理
     * @return 实验管理集合
     */
    List<Experiment> selectExperimentalManagementList(Experiment experimentalManagement);

    /**
     * 修改实验管理
     *
     * @param experimentalManagement 实验管理
     * @return 结果
     */
    int updateExperimentalManagement(Experiment experimentalManagement);

    int cancelExperiment(Long id);

    /**
     * 获取指定实验可执行的人员名单
     * @param experimentTypeId
     * @return
     */
    List<Job> getAllJob(Integer experimentTypeId);

    Experiment getExperimentBySampleId(Long id);

    List<ESample> listSamplesWithExperiment(Sample sample);

    boolean finishOutExperiment(Long id);

    List<TreeSample> getMakeList(Long itemId);

    void makeSample(Sample sample);

    boolean backSample(List<Long> ids);

    boolean isFinish(Long id);
}
